21. Course Recap

Course Recap

ND079 JPND C3 L5 A16 Recap Of Course V3

Final Notes

We've gone all the way from building jar files by hand to automating the execution of unit tests with every project commit. Hopefully this introduction to the Java build process and all that it entails helps you feel confident that you can create and maintain Java projects throughout their entire lifecycle. Anyone can write clever code, but it's a lot harder to create a project that people still want to develop for 10 years down the road.

Sometimes software projects will be compared and contrasted to civil engineering projects, like building bridges or raising buildings. Writing software is often very different than building a bridge, because we can change our minds a lot more easily. The longer a project lives, however, the closer it becomes to a bridge. Hundreds or thousands of lines of code later, changing your program might end up requiring a major architectural revision, or integrating entirely different external dependencies. Making changes like these on an application without unit testing is like building additions to a house with no foundation, or laying a bridge without supports.

No one goes into the process of building a bridge with the expectation of throwing it away and building another a couple years later. Software may feel ephemeral, but it also forms the backbone for massive business applications and critical hospital systems. Not everything you write will have life or death consequences, but you should think of the products you create as a long-term investment. Just like the cost of finding bugs early in the development process is far cheaper than finding them in production, creating a solid foundation of unit tests and continuous integration is much easier to do early in your project's life.

Now, you should have the tools to get started, so good luck writing projects you'll be happy to keep working on!